﻿using AppWPF.Models;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AppWPF.ViewModels
{
    public class DatosPaciente
    {

        HospitalEntities contexto = new HospitalEntities();

        ObservableCollection<Paciente> pacientes;

        public AgregarPacienteCommand AgregarPacientes { get; private set; }
        public ModifyPacienteCommand ModificarPaciente { get; private set; }

        public DatosPaciente()
        {
            this.AgregarPacientes = new AgregarPacienteCommand(Add);
            this.ModificarPaciente = new ModifyPacienteCommand(Modify);
        }

        //Propiedad Colecciones de pacientes en el hospital
        public ObservableCollection<Paciente> Pacientes
        {
            get
            {
                if (pacientes == null)
                {
                    pacientes = new ObservableCollection<Paciente>(contexto.Paciente);
                }
                return pacientes;
            }
            set
            {
                pacientes = value;
            }
        }

        //Agregar Persona/Paciente 
        void Add(Paciente paci)
        {
            Paciente pac = new Paciente()
            {
                Rut = paci.Rut,
                Nombre = paci.Nombre,
                Apellido = paci.Apellido,
                Estado = 1,
                FechaIngreso = DateTime.Now.Date
            };
            contexto.Paciente.Add(pac);
            contexto.SaveChanges();
        }

        //Modificar paciente
        void Modify(Paciente paci)
        {
            Paciente mPaci = contexto.Paciente.SingleOrDefault(p => p.Rut == paci.Rut);
            mPaci.Nombre = paci.Nombre;
            mPaci.Apellido = paci.Apellido;
            contexto.SaveChanges();
        }
    }
}
